/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.pucp.Envios.Vista;

import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
import pe.edu.pucp.Util.MapaHelper.JMapViewer.Coordinate;
import pe.edu.pucp.Util.MapaHelper.JMapViewer.JMapViewer;
import pe.edu.pucp.Util.MapaHelper.JMapViewer.MapMarkerDot;
import pe.edu.pucp.Util.MapaHelper.JMapViewer.MapPolygonImpl;
import pe.edu.pucp.sigepa.recocidosimulado.domain.interfaz.Solucion;

/**
 *
 * @author katy
 */
public class MapaPnl extends javax.swing.JPanel {
    private JMapViewer mapa = null;

    public MapaPnl() {
        initComponents();
        mapa = new JMapViewer();
        mapa.setSize(900, 500); 
        mapa.setTileGridVisible(true); 
        pnMapa.setSize(900, 500);
        pnMapa.add(mapa);
        pnMapa.setOpaque(true); 
        pnMapa.setVisible(true);
    }

    public JMapViewer getMapa() {
        return mapa;
    }

    public void setMapa(JMapViewer mapa) {
        this.mapa = mapa;
    }

    public void graficarRuta(Solucion lst){           
        if(lst != null) {
            MapMarkerDot m;
            List<Coordinate> ruta;
            Coordinate i = new Coordinate(lst.get(0).getAeropuertoOrigen().getCiudad().getLatitud(), lst.get(0).getAeropuertoOrigen().getCiudad().getAltitud());
            mapa.setDisplayPositionByLatLon(i.getLat(),i.getLon(),2);
            m = new MapMarkerDot(i.getLat(), i.getLon(), Color.RED);
            mapa.addMapMarker(m);

            for(int j=1; j<lst.size(); j++){
                ruta = new ArrayList<>();
                Coordinate nodo = new Coordinate(lst.get(j).getAeropuertoOrigen().getCiudad().getLatitud(), lst.get(j).getAeropuertoOrigen().getCiudad().getAltitud());
                ruta.add(i);
                ruta.add(nodo);
                ruta.add(i);

                i = nodo;
                m = new MapMarkerDot(nodo.getLat(), nodo.getLon(), Color.YELLOW);
                mapa.addMapMarker(m);
                mapa.addMapPolygon(new MapPolygonImpl(ruta));
             } 
            
            Coordinate c = new Coordinate(lst.get(lst.size()-1).getAeropuertoDestino().getCiudad().getLatitud(), lst.get(lst.size()-1).getAeropuertoDestino().getCiudad().getAltitud());
            m = new MapMarkerDot(c.getLat(),c.getLon(), Color.YELLOW );
            ruta = new ArrayList<>(); 
            ruta.add(i);
            ruta.add(c);
            ruta.add(i);
            mapa.addMapMarker(m);
            mapa.addMapPolygon(new MapPolygonImpl(ruta));
        } else { }    
    }
    

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        pnMapa = new javax.swing.JPanel();

        pnMapa.setBorder(null);

        javax.swing.GroupLayout pnMapaLayout = new javax.swing.GroupLayout(pnMapa);
        pnMapa.setLayout(pnMapaLayout);
        pnMapaLayout.setHorizontalGroup(
            pnMapaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        pnMapaLayout.setVerticalGroup(
            pnMapaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pnMapa, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pnMapa, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
    }// </editor-fold>//GEN-END:initComponents
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel pnMapa;
    // End of variables declaration//GEN-END:variables
}
